chore: migrate panll off npm onto Deno (standards#253 step)#65
Merged
Conversation
Eliminate package.json + package-lock.json. All build orchestration now flows through deno.json tasks using npm: specifiers cached by `deno install`. Resolves the lockfile-drift root cause that band-aided in panll#62 (workflow switched npm ci -> npm install --no-audit --no-fund). With package.json removed, the drift class disappears entirely. Changes: - deno.json: add nodeModulesDir=auto; tailwindcss + rescript + @rescript/core + @rescript/runtime promoted to deno imports; tasks invoke them via deno run -A --allow-scripts=npm:<pkg> npm:<pkg>@ver. Pinned-version trailing-slash forms (npm:/pkg@VER/) keep the res.js subpath imports URL-resolvable. - .github/workflows/build-validation.yml: drop actions/setup-node; npm ci/npm run res:build replaced with deno install + deno task res:build; drop stale src-tauri/ manifest-path (Gossamer migration completed previously); rust gate now cargo check / cargo test --lib at workspace root. Linux deps step renamed Tauri -> Gossamer. - .github/workflows/e2e.yml: replace `npx rescript build` with `deno task res:build` (3 jobs). - Delete package.json + package-lock.json (no .npmrc was present). - deno.lock auto-tidies: packageJson block removed, workspace. dependencies absorbs the four formerly-package.json deps. Verified locally: - `deno install` OK (77 npm packages resolved) - `deno task res:build` OK (.res.js outputs produced, warnings only) - `deno task bundle` OK (public/app.bundle.js 5.6MB) - `deno task css:build` OK (public/styles.css 81KB) - `deno task test` 2545 passed / 21 failed — IDENTICAL to main (failures are pre-existing, unrelated) - `cargo check --lib` OK - `deno cache scripts/bundle.ts` OK Tailwind decision: kept via `npm:tailwindcss@^3.4.19` specifier as a transitional choice. No fully deno-native drop-in worth the swap right now (windicss/unocss have semantic divergences from the existing classes). Worth a follow-up issue under standards#253 for a future tailwind -> deno-native swap. Refs: - standards#253 (estate npm->Deno umbrella) - panll#62 (band-aid superseded — `npm install --no-audit --no-fund` no longer needed) - session_2026_05_30_snifs_build_mode_arc (lockfile drift origin) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fbfeda2 to
bacec2f
Compare
|
This was referenced May 30, 2026
hyperpolymath
added a commit
that referenced
this pull request
May 30, 2026
Follows panll#65 (npm → Deno migration: package.json + package-lock.json deleted; ReScript + Tailwind now run via `npm:` specifiers in deno.json through `deno task res:build` / `deno run -A npm:tailwindcss`). Files touched (no overlap with #65): - README.adoc — `npx rescript build` → `deno task res:build` in Development + Quick Start sections; Runtime cell reworded ("Deno-only build, no package.json or npm CLI"). - src/model/README.md — `npx rescript build` → `deno task res:build` in the "Adding a New Module" checklist. - docs/guides/llm-warmup-user.md — Rules line updated to "Deno only (ReScript + Tailwind run via `npm:` specifiers in deno.json)". - AGENTS.md + GEMINI.md + .junie/guidelines.md — `no-npm-bun` rule and `deno-npm-hybrid` decision (renamed `deno-only-with-npm-specifiers`) reworded to match shipped reality. These three files are auto-generated from coordination.k9, so coordination.k9 is updated in the same pass to prevent drift on next regeneration. - coordination.k9 — source-of-truth update for the three K9-generated files above (no-npm-bun + decision block). - CONTRIBUTING.md — "Deno instead of npm/Node" paragraph updated: ReScript + Tailwind via `npm:` specifiers, no package.json, no npm CLI. - CHANGELOG.md — added an `Unreleased` entry for 2026-05-30 documenting the panll#65 migration (deno.json tasks, setup-node removed from CI, supersedes panll#62 band-aid). - scripts/bundle.ts:19 — Tauri JS APIs comment replaced with accurate Gossamer IPC bindings description (PanLL migrated FROM Tauri long ago). - docs/archive/NPM-TO-DENO-MIGRATION.md — added a "CLOSED 2026-05-30 by panll#65" status banner at top; body preserved as historical planning document (no rewrite). - tests/cross_panel_integration_test.js:243 — SeamEngine.fullScan input list updated `"package.json"` → `"deno.json"` to reflect post-#65 file layout (the literal-array test still passes either way; this is a doc-correctness fix on the test fixture). Untouched (deliberately): - panll/.claude/CLAUDE.md — owner directive (panll#60 reverted; excluded from sweeps). - .github/workflows/build-validation.yml + e2e.yml — panll#65 territory; this PR does not touch them. - All .res/.resi files — out of scope (standards#252). - TOPOLOGY.md — already clean (uses `deno task res:build`; remaining Tauri references are historical-migration context, accurate). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Eliminate
package.json+package-lock.jsonfrom panll. All build orchestration now flows throughdeno.jsontasks usingnpm:specifiers cached bydeno install.This supersedes the band-aid in panll#62 (workflow switched
npm ci->npm install --no-audit --no-fundto work around lockfile drift). Withpackage.jsonremoved, the drift class disappears entirely. Lockfile-drift root cause traced to session_2026_05_30_snifs_build_mode_arc.Implements one step of the estate npm->Deno umbrella (hyperpolymath/standards#253).
Changes
deno.json: addnodeModulesDir: "auto"; tailwindcss + rescript + @rescript/core + @rescript/runtime promoted to deno imports; tasks invoke them viadeno run -A --allow-scripts=npm:<pkg> npm:<pkg>@VER. Pinned-version trailing-slash formsnpm:/pkg@VER/keep the.res.jssubpath imports URL-resolvable..github/workflows/build-validation.yml: dropactions/setup-node;npm ci+npm run res:buildreplaced withdeno install+deno task res:build; drop stalesrc-tauri/manifest-paths (Gossamer migration completed previously —src-tauri/does not exist on main); rust gate nowcargo check+cargo test --libat workspace root. Linux deps step renamed Tauri -> Gossamer..github/workflows/e2e.yml: replacenpx rescript buildwithdeno task res:buildacross all 3 jobs.package.json+package-lock.json(no.npmrcwas present).deno.lockauto-tidies:packageJsonblock removed;workspace.dependenciesabsorbs the four formerly-package.json deps.Tailwind decision (transitional)
Kept tailwindcss via
npm:tailwindcss@^3.4.19specifier as the transitional choice. No fully deno-native drop-in is worth the semantic swap right now (windicss/unocss diverge from existing class semantics). Recommend filing a follow-up issue under standards#253 for a future tailwind -> deno-native swap.Test plan
Verified locally on this branch (Linux x86_64, deno 2.7.14):
deno install— OK (77 npm packages resolved)deno task res:build— OK (.res.jsoutputs produced, warnings only)deno task bundle— OK (public/app.bundle.js5.6 MB)deno task css:build— OK (public/styles.css81 KB)deno task test— 2545 passed / 21 failed — IDENTICAL to main (the 21 failures are pre-existing and unrelated; confirmed by running the same suite on main and getting the same counts)cargo check --lib— OKdeno cache scripts/bundle.ts— OKjust dev(Gossamer GTK window) not runnable in this sandbox — CI build-validation job covers the rust gate after this PR.Refs
npm install --no-audit --no-fund— superseded; flag for owner to confirm removal of any open follow-up referencing it)Adjacent gaps noticed (not fixed here)
While in the repo, the meander surfaced:
scripts/bundle.tsline 19: stale// Tauri JS APIs ...comment (Gossamer migrated). Source comment only; not load-bearing — owner may want to clean in a separate doc-sweep PR.README.adoc,src/model/README.md,docs/guides/llm-warmup-user.md,AGENTS.md,GEMINI.md,.junie/guidelines.md,CONTRIBUTING.md,CHANGELOG.md,TOPOLOGY.md: containnpx rescript build/ "npm only for ReScript" / "Tauri" references that will be stale post-merge. Suggest a docs-sweep follow-up PR.docs/archive/NPM-TO-DENO-MIGRATION.md: archived migration plan now satisfied — can be marked CLOSED.tests/cross_panel_integration_test.js:242references"package.json"as a string (likely a path probe / topology check). May need a small follow-up if the test relies on the file's existence.Robot generated with Claude Code